package club.pinea.service;

import club.pinea.model.Seat;

import java.util.List;

public interface SeatService {

    /**
     * 更新座位信息设置为留机状态
     *
     * @param name   用户名
     * @param seatId 座位号
     * @return
     */
    int updateSeatsInfoForStaySeat(String name, int seatId, int room) throws Exception;

    /**
     * 初始化房间信息
     */
    void initRoom();

    /**
     * 更新数据库的座位信息
     *
     * @param seat    座位信息
     * @param seatId  座位id
     * @param isLeave 是否是离开座位的请求
     */
    void updateSeat(Seat seat, int seatId, boolean isLeave, int room);

    /**
     * 根据seatID返回seat的Bean实例
     *
     * @param seatId
     * @return
     */
    Seat getSeatBean(int seatId, int room);

    /**
     * 获取房间数据，取有人坐的座位数据
     *
     * @param room 获取list对象的key
     * @return 返回筛选过后的有人坐的位置
     */
    List<Seat> getRoomSeatDownSeatsByKey(final int room);

    /**
     * 将留机之后的座位格式化
     *
     * @param s
     * @param seatId
     */
    int formatSeatByStaySeats(Seat s, int seatId, int room);

    /**
     * 验证用户登录token
     *
     * @param userId
     * @param token
     * @return
     */
    boolean validateUserToken(Integer userId, String token);

    /**
     * 查询奖池分数
     *
     * @param seatId
     */
    int[] selPoolScores(int seatId, int roomId);
}
